const fs = require("fs");
// const json_ge = require("./fs_travel.js");

exports.fs_writeAsJSON = function fs_writeAsJSON(path1, callback) {
    var directary ={
        struct:{},
        docpath:{}
    }
    // 创建一个对象用来存放结构
    directary.struct[path1] = {};
    function recrusion(path, dirobj, docpath, data, root) {
        for (let index = 0; index < data.length; index++) {

            // 判断是不是根目录,选择目前的路经给currentchos
            if (data[index] != root) {
                currentchos = data[index]
                dirobj[currentchos] = {}; //创造对象
            } else {
                currentchos = root;
            }
            let pathtmp = `${path}` + "/" + `${currentchos}`;//编辑目前的路径
            // console.log(pathtmp, "当前路径");

            // 创建一个div

            // 判断是否为文件,是文件就给对象这个文件名，不是文件就给对象一个空对象{}
            if (fs.statSync(pathtmp, (err) => {
                if (err) {
                    console.log(err);
                    return;
                }
            }).isFile()) {
                // 是文件就给对象这个文件名
                dirobj[currentchos] = data[index];
                // console.log(dirobj[currentchos], "对应值");
                // console.log(directary, 1);
                // console.log("");

                // 查重
                flag=1;
                for(let d in docpath){
                    if(d==data[index]){
                        flag=0;
                    }
                }
                if(flag){
                    docpath[data[index]]=pathtmp;
                }
                // 给div一个链接
            } else {
                // 不是文件就给对象一个空对象{}
                dirobj[currentchos] = {};
                // console.log(dirobj[currentchos], "对应值");

                //当前实体对象位置暂存在dirytmp中
                let dirytmp = dirobj[currentchos]; 
                // 查找要走的路径下文件内容
                let data1 = fs.readdirSync(pathtmp);
                // console.log(data1, "查找该目录文件内容");
                // console.log(directary, 2);
                // console.log("");
                recrusion(pathtmp, dirytmp,docpath, data1);

                // 给div一个下拉菜单
            }
        }
    }
    recrusion(".", directary.struct,directary.docpath, [path1], path1);
    console.log("目录遍历完成！！");
    
    var way = `./dirData/${path1}Dir.json`;
    var data = JSON.stringify(directary);
    const writer = fs.createWriteStream(way);
    writer.write(data);
    console.log('创建写入文件成功！！');
    // var data = JSON.stringify(json_ge.dirobject(path1, write));
    // const writer = fs.createWriteStream(way);
    // writer.write(data);
    callback(directary);
}